/**
* Copyright (c) By zengqh.
*
* This program is just for fun or demo, in the hope that it  
* will be useful, you can redistribute it and/or modify freely.
*
* Time: 2013/03/15
* File: Geometry.h
* Blog: http://www.cnblogs.com/zengqh/
**/

#pragma once

namespace HY
{
class Geometry
{
public:
	Geometry();
	~Geometry();

	const std::string& getName() const;

	void setName(const std::string& name = "");

	uint32 getFlags() const;

	void setFlags(uint32 flags = 0);

	bool isActive() const;

	void setActive(bool active = true);

	uint32 getPrimitiveType() const;

	void setPrimitiveType(uint32 prim);

	uint32 getMaterial() const;

	void setMaterial(uint32 nMat = 0);

	uint32 getStartIdx() const;

	void setStartIdx(uint32 start_idx = 0);

	uint32 getIdxSize() const;

	void setIdxSize(uint32 idx_size = 0);

	uint32 getNumOfTriangles() const;

protected:
	std::string		name_;
	uint32			flags_;
	bool			active_;
	uint32			prim_type_;
	uint32			mat_idx_;
	uint32			start_idx_;
	uint32			idx_size_;
};
}